Welding-Type Power Supply With Boot Loader

ABSTRACT

A method and apparatus for providing welding-type power are disclosed. They include a source of welding-type power and at least one welding system peripheral. Each includes a network module that has boot loader software. A network is connected to the two network modules, and the network has connection for updates that is capable of receiving software updates. The network connection for updating may be on a user interface module, disposed inside or outside of a housing of the source of welding-type power and may include an RS232 connection. The network modules may include application software. The peripheral may be a wire feeder, a robot interface, or any other peripheral. A second peripheral, with a network module and boot loader software, may also be connected to the network. The updating can occur when the system is powered up. The software update is obtained from a personal computer, a personal digital assistant, or over the internet.

FIELD OF THE INVENTION

The present invention relates generally to the art of welding-type powersupplies. More specifically, it relates to welding-type power supplieshaving a network, such as a controller area network (CAN).

BACKGROUND OF THE INVENTION

Welding power supplies or systems are available for a wide variety ofprocesses, and with a wide variety of sophistication. Welding-type powersupply or system, as used herein, includes power supplies or systemsthat provide welding, cutting or heating power, and may include acontroller, switches, etc. Traditionally, a good weld required anexperienced welder, not only to properly execute the weld, but toproperly select operating parameters (such as output voltage, current,power, pulse width, wire feed speed, etc.)

Now, robots are available that execute the weld. Also, pre-determinedwelding programs that set operating parameters are available. These maybe input to a welding-type system by a user using a user-interface suchas a keypad, touch screen, control knobs, etc. Also, programs can bestored as application software and transferred to the welding-typesystem (where they are usually stored in non-volatile memory that ispart of a controller). Application software, as used herein, includessoftware and data that controls a welding system before, during or aftera weld, such as setting operating parameters, setpoints, etc.

It may be desirable to change application data because of improvementsin the program, or improvements in the data, or because the welding-typesystem is used for a new or different application. Also, it may bedesirable to change application software for multiple components of awelding-type system, such as the power supply, wire feeder, and robotinterface.

The process of updating application software can be tedious—eitherentering the information through a serial interface board-by-board, orreplacing a component such as an eprom (by removing the eprom andreprogramming it). Both of these procedures require removing thehousing, which can be difficult.

Accordingly, a method and apparatus for updating software in awelding-type system that is easy, fast and economical. Additionally, themethod and apparatus would preferably be useful over a network, somultiple components could be updated.

SUMMARY OF THE PRESENT INVENTION

According to a first aspect of the invention a welding-type power supplyincludes a source of welding-type power and at least one welding systemperipheral. Each includes a network module that has boot loadersoftware. A network is connected to the two network modules, and thenetwork has connection for updates that is capable of receiving softwareupdates.

In various embodiments the network connection for updating is on a userinterface module, disposed in a housing with the source of welding-typepower, disposed outside the housing, disposed on a pendant, on a networkcontroller module, and/or includes an RS232 connection.

The network modules include application software in another alternative.

The peripheral is a wire feeder, a robot interface, or any otherperipheral in various embodiments.

A second peripheral, such as a robot interface, is included, and has anetwork module, connected to the network, with boot loader software, inanother embodiment.

According to a second aspect of the invention a method of providingwelding-type power includes connecting a source of welding-type power toa network and controlling the connection by executing software thatincludes boot loader software. Also, at least one welding systemperipheral is connected to the network, and the connection to thenetwork is controlled by executing software that includes boot loadersoftware. Software updates are received on the network through a networkconnection.

Application software that controls the source and the peripheral is alsoexecuted in other embodiments.

According to a third aspect of the invention a method of updatingsoftware used to control a welding-type system includes executing bootloader software and determining if a software update over a network isavailable. The boot loader software continues and a software update isexecuted if a software update is available, and then the execution ofthe boot loader software is ended after the software update has beencompleted. If no software update is available, then the boot loadersoftware completes it program and is terminated.

The method is performed when the system is powered up in one embodiment.

The software update is an application software update in anotherembodiment.

In other embodiments, before ending the execution of the boot loadersoftware, an error check and/or keyword check is performed, and/orapplication software is executed after the boot loader finishes.

The software update is obtained from a personal computer, a personaldigital assistant, or over the internet in various embodiments.

According to yet another aspect of the invention, a software subroutine(a subset of software capable of controlling a welding-type power supplyand a welding system peripheral) is capable of transmission through anetwork connection to overwrite at least a portion of the software whichcontrols the welding-type power supply and the welding system peripheralupon prompting.

Other principal features and advantages of the invention will becomeapparent to those skilled in the art upon review of the followingdrawings, the detailed description and the appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of a welding-type system in accordance with thepresent invention;

FIG. 2 is flow chart of a CAN boot loader routine; and

FIG. 3 is flow chart of a routine to transfer software to a CAN.

Before explaining at least one embodiment of the invention in detail itis to be understood that the invention is not limited in its applicationto the details of construction and the arrangement of the components setforth in the following description or illustrated in the drawings. Theinvention is capable of other embodiments or of being practiced orcarried out in various ways. Also, it is to be understood that thephraseology and terminology employed herein is for the purpose ofdescription and should not be regarded as limiting. Like referencenumerals are used to indicate like components.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

While the present invention will be illustrated with reference to aparticular welding system and particular components, it should beunderstood at the outset that other welding-type system, peripherals andcomponents could be used, and the invention could be used in otherapplications. Welding system peripheral, as used herein, includes wirefeeders, robot interfaces, gas supplies, user interface, or otherdevices that work with a welding-type system.

Generally, the invention includes a controller area network (CAN), orother network, with a plurality of components in a welding-type systemattached thereto. The network allows for communication between andcontrol of (instructions, feedback, etc.) components in a welding-typesystem. Each component or module includes a controller and software thatcontrols that module. Each component also includes a network module, forconnecting to and communicating through, the network. Network module, asused herein, includes a module, hardware and/or software, that effectsconnection to and/or communication via a network, and/or includescontrol software for a component or module.

Each network module (or component controller) also includes applicationsoftware that controls the component, such as a motor control commands,switch inputs, etc., for a wire feeder, and display language, theinformation being displayed, etc., for a user interface module. Alongwith the application software, the network module has boot loadersoftware that runs when the system or component boots up. Boot loadersoftware, as used herein, includes software that loads during thebooting of a software controlled system, network or module.

The invention generally provides that, at power up, the boot loadersoftware for each component checks to see if a software update for thatcomponent is present on the network. If it isn't, the boot loadersoftware continues to execute, including performing error check such asCRC, and key word checks. If the checks pass, control is handed off tothe application software for that module or component.

If a software update is present on the network, the boot loader softwareupdates the application software. After the software is updated, theboot loader continues to error check, key word check, and then hands offto the application software. Software updates, as used herein, includeschanges to, replacements for, or additions to, software used in awelding-type system.

Thus, the boot loader software is executed at power up, the softwareupdate is executed if needed, and the application software is executedto operate the system. Executing software, as used herein, includescarrying out a program or series of instructions.

More specifically, a welding system 100, with an update networkconnection, includes a power control module 102 or source ofwelding-type power, a wire feeder module 104, a robot interface module106, a user interface module 108 and a connection 110.

Source of welding-type power, as used herein, is the power andassociated circuitry that can produce welding-type power when power isapplied thereto. Update network connection, as used herein, includes anetwork connection on which updates may be received. It may be aninternal or external network connection. External network connection, asused herein, includes a connection from a network to a device that isnot previously on the network, or is not continuously on the network.Internal network connection, as used herein, includes a connection froma network to a device that is continuously or routinely on the network.

The invention may be used with a wide variety of types of power modulesor types of robot interfaces. Examples of a particularly suitable powermodule is found in the Miller Alt304® or Miller MaxStar® weldingsystems, and described in U.S. patent application Ser. No. 09/540,567,filed Mar. 31, 2000, entitled Method And Apparatus For Receiving AUniversal Input Voltage In A Welding, Plasma Or Heating Power Source.Another power module is described in U.S. Pat. No. 6,115,273, entitledPower Converter With Low Loss Switching, issued Sep. 5, 2000, which ishereby incorporated by reference.

Preferably, each component or module includes its own network module,such as DeviceNet hardware and software. The network connections betweenmodules are preferably DeviceNet compatible.

The network is connected through connector 110 to a network controllermodule or a CAN 112. Network controller module, as used herein, includesa module that controls all or part of a network, including a CAN. Aconverter 114 converts the CAN (or DeviceNet) connection to an RS232connection. An RS232 connection is made to a PC 116, which has thesoftware update.

When welding-type system 100 is powered up, the software in each networkmodule boots up. It checks the network for software updates, and if anupdate is present on PC 116, the boot loader software updates theapplication software for that module. Each module may simultaneouslybegin the boot process, and the network protocol determines data flow onthe network so that each module is updated as necessary.

Alternative connections may be made, and include as using IR or otherwireless, connecting converter 114 to the internet (using perhaps anEtherNet connection), and/or using a modem. Other alternatives (whichare shown with dashed connections) include connecting directly from userinterface module 108 (which may be a front panel display) to PC 116.User interface module, as used herein, includes a module, software orhardware, that allows communication between a welding-type system andthe user, either directly or through a network.

Another alternative includes using a pendant 118 as the user interface.Pendant, as used herein, includes a device external to a welding-typesystem that may be connected to or communicate with the system. In thisalternative, pendant 118 is connected to PC 116. Yet another alternativeis to provide a PDA as pendant 118, and the software could be providedby the PDA. The various alternatives are not intended to be exhaustive,and may be used alone or in combination.

FIGS. 2 and 3 are flow charts showing the CAN boot loader software andthe RS232 to CAN software. Other software may be readily used, and theflow charts are meant to be exemplary.

Referring now to FIG. 2, CAN boot loader software representative of thatfound in any of the modules, begins with power up at 201. The systeminitializes at 202 and checks for a CAN connection message at 203. Thecheck is performed four times, at 5OOms intervals.

At 205 it is determined if a valid CAN connection message was received.If a valid CAN connection message wasn't received, then the CANbootloader ends, and the RS232 boot loader software begins.

If a valid CAN connection message was received the program delays onesecond and then flushes any remaining incoming CAN messages at 207, andwaits for a new CAN message at 209.

At 211 it is determined if the message received is a CAN connectionmessage. If it is, the program checks if this module has been flagged asselected for updating at 212. If the module isn't to be updated, theroutine returns to 209. If the module is to be updated, a CAN responsemessage is sent to the controller at 213, and the routine returns to209.

If, at 211, the message was not a CAN connection message, then at 215 itis determined if the message is a start update message for this module.If it is not, the program returns to 209.

If the message was a start update message for this module then, at 216,the flash is erased. Also, at 216, it is determined of the erasure waserror free. If it was not error free, an error CAN message is sent tothe controller at 217 and the program returns to 209 (and waits to startthe file transfer over).

If the erasure was error free at 216, then at 220 one line of the hexfile (the update) is received through CAN messages. It is determined ifthe hex file is done being sent at 221. If the hex file is not done itis determined if there was an error during the hex file line transfer at222. If there is an error the routine returns an error message at 217and then waits, at 209, to start the file transfer over.

If there was not an error during the line transfer the hex line iswritten to flash memory at 223. The writing is checked for errors at224. If there was an error writing the line to flash the routine returnsan error message at 217, and then waits, at 209, to start the filetransfer over. If the line was properly written to flash the routinereturns to 220 to get another line of the file.

If, at 221, it is determined that the file is completely transferred,then at 226 the CRC value (an error check value) is calculated andstored in flash. At 227 the CRC value is checked to see if it is OK(indicating error free transfer). If it is not OK the routine returns anerror message at 217 and then waits, at 209, to start the file transferover. If the CRC value is OK, the CRC value is sent at 228 (instead ofthe error message) in the next block, and the routine returns to 209.

Referring now to FIG. 3, a flow chart showing an example of the RS232 toCAN software begins with power up at 301. The system initializes at 302and at 303 the software sends a connection message. It is sent six timesat 5OOms intervals. The message is intended for five modules (one, two,three, four, or any number of modules could be present). The softwarecauses a display sign-on message to be seen on PC 116 and requests theuser to input checksums for the modules at 304. The checksums are forverification.

Next it waits for the user input through PC 116 at 306. If a “U”,indicating update is received at 303, it allows, through user inputcommands, the user to select which modules need updating. Preferably yesor no user prompts such as “Update PCM flash? (Y/N), Update UIM flash?(Y/N) Update WFCM flash? (Y/N) Update RIO flash? (Y/N)” are provided tothe PC. Then the software issues another connection message intended forthe modules that require updating. A message is sent to the user toindicate whether all the modules to be updated responded at 308, andthen the program returns to 306.

At 310 it checks to see if the user inputs a ‘P’, for the programcommand. If a P is entered, it checks at 311 if there are modules toupdate at 311. If there aren't modules to update the program returns to306.

If there are modules to update, at 313 an “erasing flash” message isdisplayed (for next module that needs updating), and a CAN message issent to the appropriate module that starts erasing the flash memory inthat module at 314. The program waits 3 seconds for the erasing to becompleted, and then prompts the user to send the proper hex file fromthe PC (which was to replace the old application software) at 315.

The hex file is sent line by line to the appropriate module at 316. Eachline includes a CRC value for error checking. After the file is sent, aterminate message is sent to the module being updated, and after a 4.5second delay, it receives a message from the module at 317.

At 318 the program determines if the message is a checksum message, anddoes it agree with the value entered on startup. If it is and does, thenit displays an appropriate message to the user. If the message is anerror message, it displays an appropriate error message to the user.Then, the program returns to 311.

These routines may be implemented using different commands, or otherroutines, and other hardware, may be used to implement the CAN bootloader.

Numerous modifications may be made to the present invention which stillfall within the intended scope hereof. Thus, it should be apparent thatthere has been provided in accordance with the present invention amethod and apparatus for a welding-type system with software updatesthat fully satisfies the objectives and advantages set forth above.Although the invention has been described in conjunction with specificembodiments thereof, it is evident that many alternatives, modificationsand variations will be apparent to those skilled in the art.Accordingly, it is intended to embrace all such alternatives,modifications and variations that fall within the spirit and broad scopeof the appended claims.

1.-40. (canceled)
 41. A method of updating software used to control awelding-type system; determining if a software update over a network isavailable; executing a software update over the network if a softwareupdate is available.
 42. The method of claim 41, further comprisingperforming the method after the system is powered up.
 43. The method ofclaim 41, wherein determining includes determining if at least one of anapplication software and application data update is available.
 44. Themethod of claim 41, further comprising, before determining, connectingto an internet and obtaining the software update over the internet. 45.The method of claim 41, further comprising, before determining,connecting to an ethernet connection and obtaining the update over theethernet connection.
 46. The method of claim 41, further comprising,after updating executing application software.
 47. The method of claim41, further comprising obtaining the software update from a personalcomputer.
 48. The method of claim 41, further comprising obtaining thesoftware update from a personal digital assistant.
 49. The method ofclaim 41, further comprising obtaining the software update over theinternet.
 50. The method of claim 41, wherein executing includesobtaining the software update over an internet connection.
 51. Themethod of claim 41, wherein executing includes executing an update of atleast one of application software and application data.
 52. An apparatusfor updating software used to control a welding-type system; means fordetermining if a software update over a network is available; means forexecuting a software update if a software update is available, connectedto the means for determining.
 53. The apparatus of claim 52, wherein themeans for executing includes means for determining after the system ispowered up.
 54. The apparatus of claim 52, wherein the means fordetermining includes means for determining when the system boots up. 55.The apparatus of claim 52, wherein the means for determining includesmeans for determining if at least one of an application software and adata update is available.
 56. The apparatus of claim 52, furthercomprising, means for connecting to an internet, connected to the meansfor determining.
 57. The apparatus of claim 52, further comprising,means for connecting to an ethernet, connected to the means fordetermining.
 58. The apparatus of claim 52, further comprising, meansfor executing application software, connected to the means for executinga software update.
 59. A software subroutine which forms a subset ofsoftware capable of controlling a welding-type power supply and awelding system peripheral, the software subroutine being capable oftransmission through an internet connection to overwrite at least aportion of one of the software and data which controls the welding-typepower supply and the welding system peripheral upon prompting.
 60. Thesoftware subroutine of claim 59, where the transmission through anetwork connection is prompted upon power up.
 61. The softwaresubroutine of claim 59 which is prompted upon boot up.
 62. The softwaresubroutine of claim 59 wherein the portion of the software is a softwareupdate.
 63. The software subroutine of claim 59 wherein the portion ofthe software is application software.
 64. The software subroutine ofclaim 59 wherein the portion of the software is application data.